<?php 	
/**
 * 回调函数
 * --在使用一个函数的过程中，如果直接传一个变量进去的话，不能解决多大的问题，这时就需要传一个过程传给函数，改变函数的行为。
 *
 * 在函数调用时，不是传的一个变量或者一个数值，而是一个函数，这个函数就叫做回调函数参数。
 */

/**
 * 回调函数传数字
 */
$arr = array(1, 4, 3, 5, 2, 9, 7, 8, 6);

function mycon($a, $b){
	if($a > $b){
		return 1;
	}
	else if($a < $b){
		return -1;
	}else{
		return 0;
	}
}

echo "数组中原样为：";
print_r($arr);
echo "<hr/>";

usort($arr, "mycon");

echo "数组排序后为：";
print_r($arr);
echo "<br><br>";

/**
 * 回调函数传字符串
 */
$arr = array("aaa", "aa", "aaaa", "a", "aaaaaaaa", "aaaaaa", "aaaaa");

function mycon1($a, $b){
	if(strlen($a) > strlen($b)){
		return 1;
	}
	else if(strlen($a) < strlen($b)){
		return -1;
	}else{
		return 0;
	}
}

echo "数组中原样为：";
print_r($arr);
echo "<hr/>";

usort($arr, "mycon1");

echo "数组排序后为：";
print_r($arr);
 ?>